package scuts.core;

import scuts.CoreTypes;


class NotPredicate0 {
   
  public static function not (f:Void->Bool):Void->Bool
  {
    return function () return (!f());
  }
}
 
class NotPredicate1 {
  
  public static function not < T > (f:T->Bool):T->Bool
  {
    return F.n(a = !f(a));
  }
}



class NotPredicate2 {
    
  public static function not <A,B>(f:A->B->Bool):A->B->Bool
  {
    return F.n(a,b = !f(a,b));
  }
}